<?php
namespace zhtfrontend\components\rules;
use yii\rbac\Rule;
use zhtfrontend\models\datas\Goods;

/**
 * Created by PhpStorm.
 * User: dongxiaofeng
 * Date: 2018/1/2
 * Time: 9:46
 */
class updateOwnOrganizeProductRule extends Rule{
    public $name = 'updateOwnOrganizeProduct';//规则名称
    public function execute($user, $item, $params)
    {
        /*
         * 后期（可能需求还会变）：
         * 1. 根据$user获取用户信息，再获取这个管理员所属的机构；（现在机构表还没确定）
         * 2. 根据传送来的params来得到商品的id，再得到商品所属于的机构（商品表也没确定，就试试rule能不能用吧先）
         * 3. 判断上面的两个机构是否统一，不一致则返回false，否则返回true
         */
        //$product_id = \Yii::$app->request->get('id') ? \Yii::$app->request->get('id') : null;//只要需要有这个规则的都要有这个参数传入
        $product_id = isset($params['id']) ? $params['id'] : null;
        \Yii::error($params);
        \Yii::error('product_id:'.$product_id);
        if($product_id != null){
            if(!\Yii::$app->user->isGuest){
                $user_id = \Yii::$app->user->identity->getId();
                if(!empty($user_id)){
                    $mechanic_id = \Yii::$app->user->identity->mechanic_id;//用户所属于的机构id
                    $good = Goods::findOne(['id'=>$product_id]);
                    if($good){
                        $good_mechanic_id = $good->mechanic_id;
                        if($mechanic_id == $good_mechanic_id){
                            return true;
                        }else{
                            return false;
                        }
                    }else{
                        return false;
                    }
                }
            }else{
                return false;
            }
        }else{
            return false;
        }

//        $user_organize_id = 1;//后期根据user得到
//        $product_id = isset($params['post']) ? $params['post']->id : null;
//        $product_organize_id = null;
//        if($product_id != null){
//            //得到机构id，先给个假的
//            $product_originize_id = $product_id;
//        }
//        if($user_organize_id == $product_originize_id){
//            return true;
//        }else{
//            return false;
//        }
    }
}